<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Dolby Vision Content Editing for Third-Party Developers: CodecBuilderImpl Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<link href="dlb_stylesheet.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">Dolby Vision Content Editing for Third-Party Developers
   </div>
  </td>
    <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <span id="MSearchSelect"                onmouseover="return searchBox.OnSearchSelectShow()"                onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
          <input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('a00044.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#pri-static-attribs">Static Private Attributes</a> &#124;
<a href="a00041.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">CodecBuilderImpl Class Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for CodecBuilderImpl:</div>
<div class="dyncontent">
<div class="center"><img src="a00043.png" border="0" usemap="#a_codec_builder_impl_inherit__map" alt="Inheritance graph"/></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for CodecBuilderImpl:</div>
<div class="dyncontent">
<div class="center"><img src="a00042.png" border="0" usemap="#a_codec_builder_impl_coll__map" alt="Collaboration graph"/></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html">NoCodecException</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html">Track</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a98324e54250d0fab4a7e6744c0b655a7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a98324e54250d0fab4a7e6744c0b655a7">CodecBuilderImpl</a> (Context <a class="el" href="a00044.html#afcd9aae5f59d31021028e8b23b1ed1dd">context</a>, String <a class="el" href="a00044.html#acb66874627249709ed00a624cf3bfb8c">outputFormat</a>, Uri uri)  throws IOException </td></tr>
<tr class="separator:a98324e54250d0fab4a7e6744c0b655a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83cd5e654b9d437df874b35ef0885dc8"><td class="memItemLeft" align="right" valign="top">boolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a83cd5e654b9d437df874b35ef0885dc8">isDolbySupported</a> ()</td></tr>
<tr class="separator:a83cd5e654b9d437df874b35ef0885dc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58f224d9dfd07ad67cc8e1a53c321993"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a58f224d9dfd07ad67cc8e1a53c321993">getFrameRate</a> ()  throws NoCodecException </td></tr>
<tr class="separator:a58f224d9dfd07ad67cc8e1a53c321993"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaab5a1bfcdf5d66157b56d7ab0b30b33"><td class="memItemLeft" align="right" valign="top">HashMap&lt; Integer, ArrayList&lt; String &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#aaab5a1bfcdf5d66157b56d7ab0b30b33">getDolbyCodecMapping</a> ()</td></tr>
<tr class="separator:aaab5a1bfcdf5d66157b56d7ab0b30b33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea4836040cbdc489cef8995f6418334d"><td class="memItemLeft" align="right" valign="top">String&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#aea4836040cbdc489cef8995f6418334d">printDolbyCodecSupport</a> ()</td></tr>
<tr class="separator:aea4836040cbdc489cef8995f6418334d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90a914c8d508f6f8866ba09e57127273"><td class="memItemLeft" align="right" valign="top">MediaFormat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a90a914c8d508f6f8866ba09e57127273">getDecodedFormat</a> ()</td></tr>
<tr class="separator:a90a914c8d508f6f8866ba09e57127273"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc5cfe25da031434e97e11808e6e78aa"><td class="memItemLeft" align="right" valign="top">MediaExtractor&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#adc5cfe25da031434e97e11808e6e78aa">configure</a> (MediaCodec codec, Surface surface, <a class="el" href="a00032.html">BuilderCodecTemplate</a> c, int transfer)  throws NoCodecException </td></tr>
<tr class="separator:adc5cfe25da031434e97e11808e6e78aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0fd6f79e5bd2f359a77e61187b95acb"><td class="memItemLeft" align="right" valign="top">String&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#aa0fd6f79e5bd2f359a77e61187b95acb">getCodecName</a> ()  throws IOException, NoCodecException </td></tr>
<tr class="separator:aa0fd6f79e5bd2f359a77e61187b95acb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0fd6f79e5bd2f359a77e61187b95acb"><td class="memItemLeft" align="right" valign="top">String&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00036.html#aa0fd6f79e5bd2f359a77e61187b95acb">getCodecName</a> ()  throws IOException, CodecBuilderImpl.NoCodecException</td></tr>
<tr class="separator:aa0fd6f79e5bd2f359a77e61187b95acb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83cd5e654b9d437df874b35ef0885dc8"><td class="memItemLeft" align="right" valign="top">boolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00036.html#a83cd5e654b9d437df874b35ef0885dc8">isDolbySupported</a> ()</td></tr>
<tr class="separator:a83cd5e654b9d437df874b35ef0885dc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a7e07c9705f4228ff5088717a871f4a"><td class="memItemLeft" align="right" valign="top">MediaExtractor&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00036.html#a7a7e07c9705f4228ff5088717a871f4a">configure</a> (MediaCodec codec, Surface s, <a class="el" href="a00032.html">BuilderCodecTemplate</a> c, int transfer)  throws CodecBuilderImpl.NoCodecException</td></tr>
<tr class="separator:a7a7e07c9705f4228ff5088717a871f4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:ab9cdf3235931b9fd665bd546dd98b689"><td class="memItemLeft" align="right" valign="top">static boolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#ab9cdf3235931b9fd665bd546dd98b689">isDolbyGPUDecoder</a> (String decoderName)</td></tr>
<tr class="separator:ab9cdf3235931b9fd665bd546dd98b689"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a5f54c58598cc245e82ab6d27a32c18"><td class="memItemLeft" align="right" valign="top">static boolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a9a5f54c58598cc245e82ab6d27a32c18">isDolbyDPUDecoder</a> (String decoderName)</td></tr>
<tr class="separator:a9a5f54c58598cc245e82ab6d27a32c18"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-attribs" name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a2389d72615147c2656b1b7f9964584d5"><td class="memItemLeft" align="right" valign="top">static final String&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a2389d72615147c2656b1b7f9964584d5">HEVC</a> = &quot;HEVC&quot;</td></tr>
<tr class="separator:a2389d72615147c2656b1b7f9964584d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a451221e2defef918d026554710f8d8e5"><td class="memItemLeft" align="right" valign="top">static final String&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a451221e2defef918d026554710f8d8e5">AVC</a> = &quot;AVC&quot;</td></tr>
<tr class="separator:a451221e2defef918d026554710f8d8e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a810ae7b6c04e662961dee3a74bcc9248"><td class="memItemLeft" align="right" valign="top">static final String&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a810ae7b6c04e662961dee3a74bcc9248">DV_ME</a> = &quot;DV-ME&quot;</td></tr>
<tr class="separator:a810ae7b6c04e662961dee3a74bcc9248"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32731222ef1e895a69545ed58e22fbf4"><td class="memItemLeft" align="right" valign="top">static final String&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a32731222ef1e895a69545ed58e22fbf4">DOLBY_GPU_DECODER</a> = &quot;c2.dolby.decoder.hevc&quot;</td></tr>
<tr class="separator:a32731222ef1e895a69545ed58e22fbf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a079b0e8dfb7f9af657c86a1c0cecdfba"><td class="memItemLeft" align="right" valign="top">static final String&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a079b0e8dfb7f9af657c86a1c0cecdfba">DOLBY_DPU_DECODER</a> = &quot;c2.qti.dv.decoder&quot;</td></tr>
<tr class="separator:a079b0e8dfb7f9af657c86a1c0cecdfba"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-methods" name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a516dc1decd1c986d687b32dc329bc3a7"><td class="memItemLeft" align="right" valign="top">HashMap&lt; Integer, MediaFormat &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a516dc1decd1c986d687b32dc329bc3a7">enumerateTracks</a> ()</td></tr>
<tr class="separator:a516dc1decd1c986d687b32dc329bc3a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af82b93f179042c42e999b2087e3a2cb7"><td class="memItemLeft" align="right" valign="top">List&lt; <a class="el" href="a00048.html">Track</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#af82b93f179042c42e999b2087e3a2cb7">getTracksByType</a> (<a class="el" href="a00040.html">CodecType</a> type)</td></tr>
<tr class="separator:af82b93f179042c42e999b2087e3a2cb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fddbcf75e24c10c08518f3403f70c3a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a9fddbcf75e24c10c08518f3403f70c3a">armExtractor</a> (<a class="el" href="a00040.html">CodecType</a> type)  throws NoCodecException </td></tr>
<tr class="separator:a9fddbcf75e24c10c08518f3403f70c3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7bc70c0c4e433f5adefc5ab71c84917"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00048.html">Track</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#ab7bc70c0c4e433f5adefc5ab71c84917">getPlayableTrack</a> ()  throws NoCodecException </td></tr>
<tr class="separator:ab7bc70c0c4e433f5adefc5ab71c84917"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e8113209e7142b4597bc707f7c67f6e"><td class="memItemLeft" align="right" valign="top">MediaCodecInfo[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a6e8113209e7142b4597bc707f7c67f6e">nonDolbyKnockout</a> (final boolean dolbyCodecsOnly)</td></tr>
<tr class="separator:a6e8113209e7142b4597bc707f7c67f6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b3bac17b6cd61f980dd7f3ae309c80f"><td class="memItemLeft" align="right" valign="top">String&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a1b3bac17b6cd61f980dd7f3ae309c80f">filterCodecByFormat</a> (MediaFormat format)</td></tr>
<tr class="separator:a1b3bac17b6cd61f980dd7f3ae309c80f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a7231b7e3ed3514aa20a052c9e9cea65c"><td class="memItemLeft" align="right" valign="top">final MediaExtractor&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a7231b7e3ed3514aa20a052c9e9cea65c">extractor</a></td></tr>
<tr class="separator:a7231b7e3ed3514aa20a052c9e9cea65c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9a2362f12b49060236851113fbc8049"><td class="memItemLeft" align="right" valign="top">final MediaMetadataRetriever&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#ae9a2362f12b49060236851113fbc8049">retriever</a></td></tr>
<tr class="separator:ae9a2362f12b49060236851113fbc8049"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcd9aae5f59d31021028e8b23b1ed1dd"><td class="memItemLeft" align="right" valign="top">final Context&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#afcd9aae5f59d31021028e8b23b1ed1dd">context</a></td></tr>
<tr class="separator:afcd9aae5f59d31021028e8b23b1ed1dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a8351b200c0ebbb2945fff00eac9d4c"><td class="memItemLeft" align="right" valign="top">MediaFormat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a7a8351b200c0ebbb2945fff00eac9d4c">decoderFormat</a></td></tr>
<tr class="separator:a7a8351b200c0ebbb2945fff00eac9d4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb66874627249709ed00a624cf3bfb8c"><td class="memItemLeft" align="right" valign="top">final String&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#acb66874627249709ed00a624cf3bfb8c">outputFormat</a></td></tr>
<tr class="separator:acb66874627249709ed00a624cf3bfb8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-static-attribs" name="pri-static-attribs"></a>
Static Private Attributes</h2></td></tr>
<tr class="memitem:a3c5e1aaea549a09d140662cd680052b1"><td class="memItemLeft" align="right" valign="top">static final String&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a3c5e1aaea549a09d140662cd680052b1">DOLBY_VISION_TYPE</a> = MediaFormat.MIMETYPE_VIDEO_DOLBY_VISION</td></tr>
<tr class="separator:a3c5e1aaea549a09d140662cd680052b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3753c5f02cb856bab44d636720b485e"><td class="memItemLeft" align="right" valign="top">static final String&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#ab3753c5f02cb856bab44d636720b485e">REFLEXIVE_DOLBY_PROFILE_LOOKUP</a> = &quot;DolbyVisionProfile&quot;</td></tr>
<tr class="separator:ab3753c5f02cb856bab44d636720b485e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e14bc5815c984fe9cc4b83ece711a4d"><td class="memItemLeft" align="right" valign="top">static final int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#a0e14bc5815c984fe9cc4b83ece711a4d">TOP_RESULT</a> = 0</td></tr>
<tr class="separator:a0e14bc5815c984fe9cc4b83ece711a4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_attribs_a00036"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_a00036')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="a00036.html">CodecBuilder</a></td></tr>
<tr class="memitem:a4884d2ca074e17cd8b35f95edf64883e inherit pub_attribs_a00036"><td class="memItemLeft" align="right" valign="top">MediaCodecList&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00036.html#a4884d2ca074e17cd8b35f95edf64883e">codecList</a> = new MediaCodecList(MediaCodecList.ALL_CODECS)</td></tr>
<tr class="separator:a4884d2ca074e17cd8b35f95edf64883e inherit pub_attribs_a00036"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fd8450630f6d8bb9577a22aa287b483 inherit pub_attribs_a00036"><td class="memItemLeft" align="right" valign="top">MediaCodecInfo[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00036.html#a0fd8450630f6d8bb9577a22aa287b483">codecInfos</a> = codecList.getCodecInfos()</td></tr>
<tr class="separator:a0fd8450630f6d8bb9577a22aa287b483 inherit pub_attribs_a00036"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>For selecting a decoder given a video file. Instead of providing hard-coded mappings from mime-type and profile to a decoder, this class searches the component store and returns a list of valid codecs that are able to play back the given video. </p>

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00065">65</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a98324e54250d0fab4a7e6744c0b655a7" name="a98324e54250d0fab4a7e6744c0b655a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a98324e54250d0fab4a7e6744c0b655a7">&#9670;&#160;</a></span>CodecBuilderImpl()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00044.html">CodecBuilderImpl</a> </td>
          <td>(</td>
          <td class="paramtype">Context&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">String&#160;</td>
          <td class="paramname"><em>outputFormat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Uri&#160;</td>
          <td class="paramname"><em>uri</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> throws IOException</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor. Simply set up the extractor to point at the file provided by the user.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">context</td><td>The Android context. </td></tr>
    <tr><td class="paramname">outputFormat</td><td>The format of the output encoder. </td></tr>
    <tr><td class="paramname">uri</td><td>The URI for the file. </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">IOException</td><td>File cannot be opened. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00112">112</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a9fddbcf75e24c10c08518f3403f70c3a" name="a9fddbcf75e24c10c08518f3403f70c3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9fddbcf75e24c10c08518f3403f70c3a">&#9670;&#160;</a></span>armExtractor()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void armExtractor </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00040.html">CodecType</a>&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td> throws <a class="el" href="a00052.html">NoCodecException</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Arm the extractor to the track that matches the chosen codec. We assume there will only be 1 video track in the file.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">type</td><td>Flag to allow other formats in future. For now always video. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00198">198</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="a00044_a9fddbcf75e24c10c08518f3403f70c3a_cgraph.png" border="0" usemap="#aa00044_a9fddbcf75e24c10c08518f3403f70c3a_cgraph" alt=""/></div>
</div>

</div>
</div>
<a id="adc5cfe25da031434e97e11808e6e78aa" name="adc5cfe25da031434e97e11808e6e78aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc5cfe25da031434e97e11808e6e78aa">&#9670;&#160;</a></span>configure()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MediaExtractor configure </td>
          <td>(</td>
          <td class="paramtype">MediaCodec&#160;</td>
          <td class="paramname"><em>codec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Surface&#160;</td>
          <td class="paramname"><em>surface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00032.html">BuilderCodecTemplate</a>&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>transfer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> throws <a class="el" href="a00052.html">NoCodecException</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Boots the codec before use. If the video file is Dolby Vision, this method sets the transfer mode of the Dolby decoder.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">codec</td><td>The MediaCodec object being used. </td></tr>
    <tr><td class="paramname">surface</td><td>The input surface of the codec. </td></tr>
    <tr><td class="paramname">c</td><td>The BuilderCodecTemplate object that wraps the codec being used. </td></tr>
    <tr><td class="paramname">transfer</td><td>The Dolby Vision transfer mode, provided as an index into the list BuilderCodecTemplate.TRANSFER_PARAMS. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The MediaExtractor object used to read metadata from the video file. </dd></dl>

<p>Implements <a class="el" href="a00036.html#a7a7e07c9705f4228ff5088717a871f4a">CodecBuilder</a>.</p>

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00446">446</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="a516dc1decd1c986d687b32dc329bc3a7" name="a516dc1decd1c986d687b32dc329bc3a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a516dc1decd1c986d687b32dc329bc3a7">&#9670;&#160;</a></span>enumerateTracks()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">HashMap&lt; Integer, MediaFormat &gt; enumerateTracks </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Maps the tracks present in a file to a track ID number and its format.</p>
<dl class="section return"><dt>Returns</dt><dd>A hashmap matching the above description. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00149">149</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="a00044_a516dc1decd1c986d687b32dc329bc3a7_icgraph.png" border="0" usemap="#aa00044_a516dc1decd1c986d687b32dc329bc3a7_icgraph" alt=""/></div>
</div>

</div>
</div>
<a id="a1b3bac17b6cd61f980dd7f3ae309c80f" name="a1b3bac17b6cd61f980dd7f3ae309c80f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b3bac17b6cd61f980dd7f3ae309c80f">&#9670;&#160;</a></span>filterCodecByFormat()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">String filterCodecByFormat </td>
          <td>(</td>
          <td class="paramtype">MediaFormat&#160;</td>
          <td class="paramname"><em>format</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Given a track format find a decoder that is able to play it.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">format</td><td>The format of the track we are trying to play. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A codec name, or null if the track is not playable. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00410">410</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="aa0fd6f79e5bd2f359a77e61187b95acb" name="aa0fd6f79e5bd2f359a77e61187b95acb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0fd6f79e5bd2f359a77e61187b95acb">&#9670;&#160;</a></span>getCodecName()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">String getCodecName </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> throws IOException, <a class="el" href="a00052.html">NoCodecException</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the name of the selected codec.</p>
<dl class="section return"><dt>Returns</dt><dd>The codec name as a String. </dd></dl>

<p>Implements <a class="el" href="a00036.html#aa0fd6f79e5bd2f359a77e61187b95acb">CodecBuilder</a>.</p>

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00477">477</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="a90a914c8d508f6f8866ba09e57127273" name="a90a914c8d508f6f8866ba09e57127273"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90a914c8d508f6f8866ba09e57127273">&#9670;&#160;</a></span>getDecodedFormat()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MediaFormat getDecodedFormat </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns a MediaFormat object describing the format of the selected decoder. This method should only be called after the codec is configured.</p>
<dl class="section return"><dt>Returns</dt><dd>The decoder format. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00430">430</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="aaab5a1bfcdf5d66157b56d7ab0b30b33" name="aaab5a1bfcdf5d66157b56d7ab0b30b33"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaab5a1bfcdf5d66157b56d7ab0b30b33">&#9670;&#160;</a></span>getDolbyCodecMapping()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">HashMap&lt; Integer, ArrayList&lt; String &gt; &gt; getDolbyCodecMapping </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A utility function for getting codecs for a Dolby Vision Profile.</p>
<dl class="section return"><dt>Returns</dt><dd>A hashmap that returns profile numbers mapped to a list of codecs. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00341">341</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="a58f224d9dfd07ad67cc8e1a53c321993" name="a58f224d9dfd07ad67cc8e1a53c321993"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58f224d9dfd07ad67cc8e1a53c321993">&#9670;&#160;</a></span>getFrameRate()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int getFrameRate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> throws <a class="el" href="a00052.html">NoCodecException</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the frame rate of the input video file.</p>
<dl class="section return"><dt>Returns</dt><dd>The frame rate. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00209">209</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="a00044_a58f224d9dfd07ad67cc8e1a53c321993_cgraph.png" border="0" usemap="#aa00044_a58f224d9dfd07ad67cc8e1a53c321993_cgraph" alt=""/></div>
</div>

</div>
</div>
<a id="ab7bc70c0c4e433f5adefc5ab71c84917" name="ab7bc70c0c4e433f5adefc5ab71c84917"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7bc70c0c4e433f5adefc5ab71c84917">&#9670;&#160;</a></span>getPlayableTrack()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00048.html">Track</a> getPlayableTrack </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> throws <a class="el" href="a00052.html">NoCodecException</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Find the video track in the file and return its format.</p>
<dl class="section return"><dt>Returns</dt><dd>The track format. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00220">220</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="a00044_ab7bc70c0c4e433f5adefc5ab71c84917_cgraph.png" border="0" usemap="#aa00044_ab7bc70c0c4e433f5adefc5ab71c84917_cgraph" alt=""/></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="a00044_ab7bc70c0c4e433f5adefc5ab71c84917_icgraph.png" border="0" usemap="#aa00044_ab7bc70c0c4e433f5adefc5ab71c84917_icgraph" alt=""/></div>
</div>

</div>
</div>
<a id="af82b93f179042c42e999b2087e3a2cb7" name="af82b93f179042c42e999b2087e3a2cb7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af82b93f179042c42e999b2087e3a2cb7">&#9670;&#160;</a></span>getTracksByType()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">List&lt; <a class="el" href="a00048.html">Track</a> &gt; getTracksByType </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00040.html">CodecType</a>&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Returns a list of tracks which are of a certain mime prefix. Specifically if codec type is VIDEO then all tracks with a mime type starting with video will be returned. The method is not case sensitive, both video and Video will match. The given mime type is converted to lowercase before comparison. A list of media format objects that represent tracks</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">type</td><td>A flag for the type of track. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A list of tracks that are of the requested type. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00172">172</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="a00044_af82b93f179042c42e999b2087e3a2cb7_cgraph.png" border="0" usemap="#aa00044_af82b93f179042c42e999b2087e3a2cb7_cgraph" alt=""/></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="a00044_af82b93f179042c42e999b2087e3a2cb7_icgraph.png" border="0" usemap="#aa00044_af82b93f179042c42e999b2087e3a2cb7_icgraph" alt=""/></div>
</div>

</div>
</div>
<a id="a9a5f54c58598cc245e82ab6d27a32c18" name="a9a5f54c58598cc245e82ab6d27a32c18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a5f54c58598cc245e82ab6d27a32c18">&#9670;&#160;</a></span>isDolbyDPUDecoder()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static boolean isDolbyDPUDecoder </td>
          <td>(</td>
          <td class="paramtype">String&#160;</td>
          <td class="paramname"><em>decoderName</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Checks whether a given decoder name matches the name of the Dolby Vision DPU decoder.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">decoderName</td><td>The name of the decoder. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the provided decoder is the Dolby Vision DPU decoder, false otherwise. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00099">99</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="ab9cdf3235931b9fd665bd546dd98b689" name="ab9cdf3235931b9fd665bd546dd98b689"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab9cdf3235931b9fd665bd546dd98b689">&#9670;&#160;</a></span>isDolbyGPUDecoder()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static boolean isDolbyGPUDecoder </td>
          <td>(</td>
          <td class="paramtype">String&#160;</td>
          <td class="paramname"><em>decoderName</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Checks whether a given decoder name matches the name of the Dolby Vision GPU decoder.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">decoderName</td><td>The name of the decoder. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the provided decoder is the Dolby Vision GPU decoder, false otherwise. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00089">89</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="a83cd5e654b9d437df874b35ef0885dc8" name="a83cd5e654b9d437df874b35ef0885dc8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83cd5e654b9d437df874b35ef0885dc8">&#9670;&#160;</a></span>isDolbySupported()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boolean isDolbySupported </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Checks for Dolby Vision support on the phone, this is a very high level check.</p>
<dl class="section return"><dt>Returns</dt><dd>True if the device is supportive, false otherwise. </dd></dl>

<p>Implements <a class="el" href="a00036.html#a83cd5e654b9d437df874b35ef0885dc8">CodecBuilder</a>.</p>

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00131">131</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="a6e8113209e7142b4597bc707f7c67f6e" name="a6e8113209e7142b4597bc707f7c67f6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e8113209e7142b4597bc707f7c67f6e">&#9670;&#160;</a></span>nonDolbyKnockout()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">MediaCodecInfo[] nonDolbyKnockout </td>
          <td>(</td>
          <td class="paramtype">final boolean&#160;</td>
          <td class="paramname"><em>dolbyCodecsOnly</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Take the list of codecs available on the phone and return a list of only available Dolby codecs.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dolbyCodecsOnly</td><td>Set to false to return all available codecs. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A list of codecs filtered accordingly. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00284">284</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="aea4836040cbdc489cef8995f6418334d" name="aea4836040cbdc489cef8995f6418334d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea4836040cbdc489cef8995f6418334d">&#9670;&#160;</a></span>printDolbyCodecSupport()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">String printDolbyCodecSupport </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A utility function for getting the Dolby Vision codecs supported by the device.</p>
<dl class="section return"><dt>Returns</dt><dd>A String listing the available Dolby Vision codecs. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00371">371</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a451221e2defef918d026554710f8d8e5" name="a451221e2defef918d026554710f8d8e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a451221e2defef918d026554710f8d8e5">&#9670;&#160;</a></span>AVC</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">final String AVC = &quot;AVC&quot;</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00068">68</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="afcd9aae5f59d31021028e8b23b1ed1dd" name="afcd9aae5f59d31021028e8b23b1ed1dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afcd9aae5f59d31021028e8b23b1ed1dd">&#9670;&#160;</a></span>context</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">final Context context</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00075">75</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="a7a8351b200c0ebbb2945fff00eac9d4c" name="a7a8351b200c0ebbb2945fff00eac9d4c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a8351b200c0ebbb2945fff00eac9d4c">&#9670;&#160;</a></span>decoderFormat</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">MediaFormat decoderFormat</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00076">76</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="a079b0e8dfb7f9af657c86a1c0cecdfba" name="a079b0e8dfb7f9af657c86a1c0cecdfba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a079b0e8dfb7f9af657c86a1c0cecdfba">&#9670;&#160;</a></span>DOLBY_DPU_DECODER</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">final String DOLBY_DPU_DECODER = &quot;c2.qti.dv.decoder&quot;</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00080">80</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="a32731222ef1e895a69545ed58e22fbf4" name="a32731222ef1e895a69545ed58e22fbf4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a32731222ef1e895a69545ed58e22fbf4">&#9670;&#160;</a></span>DOLBY_GPU_DECODER</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">final String DOLBY_GPU_DECODER = &quot;c2.dolby.decoder.hevc&quot;</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00079">79</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="a3c5e1aaea549a09d140662cd680052b1" name="a3c5e1aaea549a09d140662cd680052b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c5e1aaea549a09d140662cd680052b1">&#9670;&#160;</a></span>DOLBY_VISION_TYPE</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">final String DOLBY_VISION_TYPE = MediaFormat.MIMETYPE_VIDEO_DOLBY_VISION</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00070">70</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="a810ae7b6c04e662961dee3a74bcc9248" name="a810ae7b6c04e662961dee3a74bcc9248"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a810ae7b6c04e662961dee3a74bcc9248">&#9670;&#160;</a></span>DV_ME</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">final String DV_ME = &quot;DV-ME&quot;</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00069">69</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="a7231b7e3ed3514aa20a052c9e9cea65c" name="a7231b7e3ed3514aa20a052c9e9cea65c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7231b7e3ed3514aa20a052c9e9cea65c">&#9670;&#160;</a></span>extractor</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">final MediaExtractor extractor</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00073">73</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="a2389d72615147c2656b1b7f9964584d5" name="a2389d72615147c2656b1b7f9964584d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2389d72615147c2656b1b7f9964584d5">&#9670;&#160;</a></span>HEVC</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">final String HEVC = &quot;HEVC&quot;</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00067">67</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="acb66874627249709ed00a624cf3bfb8c" name="acb66874627249709ed00a624cf3bfb8c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb66874627249709ed00a624cf3bfb8c">&#9670;&#160;</a></span>outputFormat</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">final String outputFormat</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00077">77</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="ab3753c5f02cb856bab44d636720b485e" name="ab3753c5f02cb856bab44d636720b485e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3753c5f02cb856bab44d636720b485e">&#9670;&#160;</a></span>REFLEXIVE_DOLBY_PROFILE_LOOKUP</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">final String REFLEXIVE_DOLBY_PROFILE_LOOKUP = &quot;DolbyVisionProfile&quot;</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00071">71</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="ae9a2362f12b49060236851113fbc8049" name="ae9a2362f12b49060236851113fbc8049"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae9a2362f12b49060236851113fbc8049">&#9670;&#160;</a></span>retriever</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">final MediaMetadataRetriever retriever</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00074">74</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<a id="a0e14bc5815c984fe9cc4b83ece711a4d" name="a0e14bc5815c984fe9cc4b83ece711a4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e14bc5815c984fe9cc4b83ece711a4d">&#9670;&#160;</a></span>TOP_RESULT</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">final int TOP_RESULT = 0</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="a00002_source.html#l00072">72</a> of file <a class="el" href="a00002_source.html">CodecBuilderImpl.java</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="a00002_source.html">CodecBuilderImpl.java</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.9.1-->
<!-- start footer part -->
<!-- This div is not default but moves the footer to the bottom of the page. -->
<div id="footer">
	<div id="nav-path" class="navpath">
		<!-- id is needed for treeview function! -->
		<ul>
			<li class="logo"><a href="https://www.dolby.com"> <svg
						version="1.1" id="Logo" xmlns="http://www.w3.org/2000/svg"
						xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
						viewBox="0 0 380 118.8"
						style="vertical-align: middle; fill: white;" xml:space="preserve"
						height="3em">
						<use href="#LogoPath" />
						</svg></a></li> <li class="navelem"><b>com</b></li><li class="navelem"><b>dolby</b></li><li class="navelem"><b>vision</b></li><li class="navelem"><a class="el" href="a00023.html">codecselection</a></li><li class="navelem"><a class="el" href="a00044.html">CodecBuilderImpl</a></li>
			<li class="footer">Generated on Wed Feb 15 2023 17:10:00 for Dolby Vision Content Editing for Third-Party Developers by&nbsp;Dolby Laboratories.<br>Confidential
				Information. &#169; 2011-2021 Dolby Laboratories, &#169; 2011-2021
				Dolby International AB. All rights reserved.
			</li>
		</ul>
	</div>
</div>
<svg style="display: none">
    <path id="LogoPath"
		d="M4.6,12.5h10.6c19.8,0,36,16.2,36,36s-16.2,36-36,36H4.6V12.5z
          M107,12.5H96.4c-19.8,0-36,16.2-36,36
          s16.2,36,36,36H107V12.5z
          M190.8,48.5c0,19.9-16.1,36-36,36h-26v-72h26C174.6,12.5,190.8,28.6,190.8,48.5z
          M179.9,48.5
          c0-13.8-11.3-25.1-25.1-25.1h-15.1v50.2h15.1C168.6,73.6,179.9,62.3,179.9,48.5z
          M246.2,59.6c0,13.8-11.2,25-25,25s-25-11.2-25-25
          s11.2-25,25-25S246.2,45.9,246.2,59.6z
          M236.3,59.5c0-8.2-6.8-15-15-15s-15,6.7-15,15c0,8.2,6.7,15,15,15
          C229.5,74.6,236.3,67.9,236.3,59.5z
          M253.3,84.5h10.9v-72h-10.9V84.5z
          M323.5,59.6c0,13.8-11.2,25-25,25c-5.3,0-10.2-1.7-14.3-4.5
          v4.4h-10.9v-72h10.9v26.7c4-2.8,9-4.5,14.3-4.5C312.3,34.7,323.5,45.9,323.5,59.6z
          M313.6,59.5c0-8.2-6.8-15-15-15
          c-6.6,0-12.3,4.3-14.3,10.3c-0.5,1.5-0.8,3.1-0.8,4.8c0,1.6,0.3,3.2,0.8,4.7c2,6,7.6,10.3,14.3,10.3
          C306.8,74.6,313.6,67.9,313.6,59.5z
          M363.5,34.7l-14.2,32l-14.2-32h-11.9l20.2,45.4c0,0-4.9,11.1-5,11.1c-1.3,2.9-4.8,4.3-7.7,3
          l-1.6-0.7l-4.4,9.9l0,0l0,0l0,0l3.8,1.7c7.1,3.2,15.5,0,18.6-7.2c0-0.1,25.8-57.8,28.3-63.2L363.5,34.7L363.5,34.7z" />
</svg>
</body>
</html>
